/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package cn.ac.iie.stream.commontools.concurrent.resourcepool;

/**
 *
 * @author zwlin
 * @param <ResourceType> 资源池里的数据类型
 */
public interface ResourcePool<ResourceType> {

	/**
	 * 借取资源
	 *
	 * @return 借到的资源
	 */
	public ResourceType BorrowResource();

	/**
	 * 归还资源
	 *
	 * @param resource 归还的资源
	 * @return 是否归还成功
	 */
	public boolean ReturnResource(ResourceType resource);

	/**
	 * 新建资源实例
	 *
	 * @return 新建的资源实例
	 */
	ResourceType GetNewResource();
}
